using System;
using System.Collections.Generic;
using System.Text;
using System.Data;           //CommandType
using System.Data.SqlClient; //SqlConnection, SqlCommand, SqlDataReader
using Etna.Exportaciones.En;

namespace Etna.Exportaciones.Ad
{
   public class AdTasaImpuesto
   {
      //public AdTasaImpuesto(SqlConnection con)
      //{
      //   conexion = con;
      //}

       public EnTasaImpuesto Leer(int pidImpuesto, SqlConnection conexion)
      {
         EnTasaImpuesto oEnTasaImpuesto = null;
         SqlCommand cmd = new SqlCommand("sExportaciones_TasaImpuestoLeer", conexion);
         cmd.CommandType = CommandType.StoredProcedure;

         SqlParameter Parametro1 = cmd.Parameters.Add("@piidImpuesto", SqlDbType.Int);
         Parametro1.Direction = ParameterDirection.Input;
         Parametro1.Value = pidImpuesto;

         SqlDataReader drd = cmd.ExecuteReader(CommandBehavior.SingleResult);
         if (drd != null)
         {

            if (drd.Read())
            {
               oEnTasaImpuesto = new EnTasaImpuesto();
               oEnTasaImpuesto.idImpuesto = drd.GetInt32(0);
               if (!drd.IsDBNull(1))
               {
                  oEnTasaImpuesto.sdescripcion = drd.GetString(1);
               }
               if (!drd.IsDBNull(2))
               {
                  oEnTasaImpuesto.nvalor = drd.GetDecimal(2);
               }
               if (!drd.IsDBNull(3))
               {
                  oEnTasaImpuesto.setiqueta = drd.GetString(3);
               }
            }
            drd.Close();
         }

         return oEnTasaImpuesto;
      }

       public bool Insertar(EnTasaImpuesto poEnTasaImpuesto, SqlConnection conexion)
      {
         bool bExito = false;
         SqlCommand cmd = new SqlCommand("sExportaciones_TasaImpuestoInsertar", conexion);
         cmd.CommandType = CommandType.StoredProcedure;

         SqlParameter Parametro1 = cmd.Parameters.Add("@pidescripcion", SqlDbType.VarChar);
         Parametro1.Direction = ParameterDirection.Input;
         Parametro1.Value = poEnTasaImpuesto.sdescripcion;

         SqlParameter Parametro2 = cmd.Parameters.Add("@pivalor", SqlDbType.Decimal);
         Parametro2.Direction = ParameterDirection.Input;
         Parametro2.Value = poEnTasaImpuesto.nvalor;

         SqlParameter Parametro3 = cmd.Parameters.Add("@pietiqueta", SqlDbType.VarChar);
         Parametro3.Direction = ParameterDirection.Input;
         Parametro3.Value = poEnTasaImpuesto.setiqueta;

         int n = cmd.ExecuteNonQuery();
         bExito = (n > 0);

         return bExito;
      }


       public bool Modificar(EnTasaImpuesto poEnTasaImpuesto, SqlConnection conexion)
      {
         bool bExito = false;
         SqlCommand cmd = new SqlCommand("sExportaciones_TasaImpuestoModificar", conexion);
         cmd.CommandType = CommandType.StoredProcedure;

         SqlParameter Parametro1 = cmd.Parameters.Add("@piidImpuesto", SqlDbType.Int);
         Parametro1.Direction = ParameterDirection.Input;
         Parametro1.Value = poEnTasaImpuesto.idImpuesto;

         SqlParameter Parametro2 = cmd.Parameters.Add("@pidescripcion", SqlDbType.VarChar);
         Parametro2.Direction = ParameterDirection.Input;
         Parametro2.Value = poEnTasaImpuesto.sdescripcion;

         SqlParameter Parametro3 = cmd.Parameters.Add("@pivalor", SqlDbType.Decimal);
         Parametro3.Direction = ParameterDirection.Input;
         Parametro3.Value = poEnTasaImpuesto.nvalor;

         SqlParameter Parametro4 = cmd.Parameters.Add("@pietiqueta", SqlDbType.VarChar);
         Parametro4.Direction = ParameterDirection.Input;
         Parametro4.Value = poEnTasaImpuesto.setiqueta;

         int n = cmd.ExecuteNonQuery();
         bExito = (n > 0);

         return bExito;
      }

       public List<EnTasaImpuesto> Listar(int pidImpuesto, SqlConnection conexion)
      {
         List<EnTasaImpuesto> loEnTasaImpuesto = null;
         EnTasaImpuesto oEnTasaImpuesto = null;
         SqlCommand cmd = new SqlCommand("sExportaciones_TasaImpuestoListar", conexion);
         cmd.CommandType = CommandType.StoredProcedure;

         SqlParameter Parametro1 = cmd.Parameters.Add("@piidImpuesto", SqlDbType.Int);
         Parametro1.Direction = ParameterDirection.Input;
         Parametro1.Value = pidImpuesto;

         SqlDataReader drd = cmd.ExecuteReader(CommandBehavior.SingleResult);
         if (drd != null)
         {

            loEnTasaImpuesto = new List<EnTasaImpuesto>();
            while (drd.Read())
            {
               oEnTasaImpuesto = new EnTasaImpuesto();
               oEnTasaImpuesto.idImpuesto = drd.GetInt32(0);
               if (!drd.IsDBNull(1))
               {
                  oEnTasaImpuesto.sdescripcion = drd.GetString(1);
               }
               if (!drd.IsDBNull(2))
               {
                  oEnTasaImpuesto.nvalor = drd.GetDecimal(2);
               }
               if (!drd.IsDBNull(3))
               {
                  oEnTasaImpuesto.setiqueta = drd.GetString(3);
               }
               loEnTasaImpuesto.Add(oEnTasaImpuesto);
            }
            drd.Close();
         }

         return loEnTasaImpuesto;
      }
   }
}
